package com.sisbibvir.unmsm.controller;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import com.sisbibvir.unmsm.dao.JPAUtil;
import com.sisbibvir.unmsm.dao.PropuestaDAO;
import com.sisbibvir.unmsm.entidades.Entregable;
import com.sisbibvir.unmsm.entidades.Propuesta;


@ManagedBean(name = "propuestaBean")
@SessionScoped
public class PropuestaController {

	private JPAUtil util;
	private PropuestaDAO pr;
	private List<Propuesta> propuestas;
	private Propuesta propuesta;
	private int id;
	private String tema;
	private String descripcion;
	private int idEdicion;
	private String temaEdicion;
	private String descripcionEdicion;
	private int idBuscar;
	private List<Entregable> arrEntregable;
	
	public PropuestaController() {
	}

	public void editar() {
		util = new JPAUtil();
		pr = new PropuestaDAO(util.getEntityManager());
		propuesta.setId(idEdicion);
		propuesta.setTema(temaEdicion);
		propuesta.setDescripcion(descripcionEdicion);
		pr.update(propuesta);
		util = null;
		System.gc();
	}

	public void actualizarEdicion() {
		idEdicion = propuesta.getId();
		temaEdicion = propuesta.getTema();
		descripcionEdicion = propuesta.getDescripcion();
	}

	public void agregar() {
		util = new JPAUtil();
		pr = new PropuestaDAO(util.getEntityManager());
		propuesta = new Propuesta();
		id = pr.listarTodos().size() + 1;
		propuesta.setId(id);
		propuesta.setTema(tema);
		propuesta.setDescripcion(descripcion);
		pr.create(propuesta);
		util = null;
		System.gc();
	}

	public void eliminar() {
		util = new JPAUtil();
		pr = new PropuestaDAO(util.getEntityManager());
		pr.delete(propuesta);
		util = null;
		System.gc();
		propuesta = new Propuesta();
	}
	
	public void buscar() {
		util = new JPAUtil();
		pr = new PropuestaDAO(util.getEntityManager());
		propuesta = pr.read(idBuscar);
		actualizarEdicion();
		util = null;
		System.gc();
	}
	
	public void generarCodigo() {
		util = new JPAUtil();
		pr = new PropuestaDAO(util.getEntityManager());
		id = pr.listarTodos().size() + 1;
		util = null;
		System.gc();
		System.out.println(id);
	}

	public List<Propuesta> getPropuestas() {
		util = new JPAUtil();
		pr = new PropuestaDAO(util.getEntityManager());
		propuestas = pr.listarTodos();
		util = null;
		System.gc();
		return propuestas;
	}

	public void setPropuestas(List<Propuesta> propuestas) {
		this.propuestas = propuestas;
	}

	public Propuesta getPropuesta() {
		return propuesta;
	}

	public void setPropuesta(Propuesta propuesta) {
		this.propuesta = propuesta;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getTema() {
		return tema;
	}

	public void setTema(String tema) {
		this.tema = tema;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public int getIdEdicion() {
		return idEdicion;
	}

	public void setIdEdicion(int idEdicion) {
		this.idEdicion = idEdicion;
	}

	public String getTemaEdicion() {
		return temaEdicion;
	}

	public void setTemaEdicion(String temaEdicion) {
		this.temaEdicion = temaEdicion;
	}

	public String getDescripcionEdicion() {
		return descripcionEdicion;
	}

	public void setDescripcionEdicion(String descripcionEdicion) {
		this.descripcionEdicion = descripcionEdicion;
	}
	
	public int getIdBuscar() {
		return idBuscar;
	}

	public void setIdBuscar(int idBuscar) {
		this.idBuscar = idBuscar;
	}

	public List<Entregable> getArrEntregable() {
		return arrEntregable;
	}

	public void setArrEntregable(List<Entregable> arrEntregable) {
		this.arrEntregable = arrEntregable;
	}
	
	
}
